import numpy as np
import matplotlib.pyplot as plt
import keras
from keras import layers

# ---------------- 组合的函数图------------------

x1 = np.linspace(0,3,50)
y1 = x1 ** 2 + 1

x2 = y1
y2 = np.cos(x2)

plt.plot(x1,y2,'r-')

#-----------------预测线 ------------------------
# 1、新建模型
# 2、设置优化器、损失函数
# 3、训练数据
# 4、预测数据

model = keras.Sequential([
    layers.Flatten(input_shape=(1,)), # 输入是一个x的值
    layers.Dense(10,activation="relu"), # 设置激活函数
    layers.Dense(10,activation="relu"), # 设置激活函数
    layers.Dense(1) # 输出是一个y的值
])

model.compile(
    # 设置优化器
    optimizer=keras.optimizers.SGD(learning_rate=0.1),
    # 设置损失函数
    loss=keras.losses.MSE,
    metrics=['acc']
)
# 训练已有的数据
model.fit(x1,y2,epochs=2000)

# 使用训练好的模型进行预测
predict_y = model.predict(x1)

plt.plot(x1,predict_y,'bo')

plt.show()